package main

import (
	"fmt"
	"net/http"
	"time"
)

// 路由规则
// URL 分为两种，末尾是 / 表示一个子树，后面可以跟其他子路径；末尾不是 /，表示一个叶子，固定的路径以 / 结尾的 URL 可以匹配它的任何子路径，
// 比如 /images/ 会匹配 /images/cute-cat.jpg。
// 它采用最长匹配原则，如果有多个匹配，一定采用匹配路径最长的那个处理。
// 如果没有找到任何匹配项，会返回 404 错误。
func main() {
	http.HandleFunc("/", func(writer http.ResponseWriter, request *http.Request) {
		fmt.Fprintf(writer, "Hello, World!")
	})

	http.HandleFunc("/time/", func(writer http.ResponseWriter, request *http.Request) {
		t := time.Now()
		timeStr := fmt.Sprintf("{\"time\": \"%s\"}", t)
		writer.Write([]byte(timeStr))
	})

	http.ListenAndServe(":8080", nil)
}
